package cn.ffcs.uec.outStaff.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import cn.ffcs.uec.common.vo.UecBdDefdoc;
import cn.ffcs.uec.outStaff.dao.UecOutStaffDao;
import cn.ffcs.uom.common.model.UomEntity;
import cn.ffcs.uom.common.util.ApplicationContextUtil;
import cn.ffcs.uom.common.util.StrUtil;
import lombok.Getter;
import lombok.Setter;

/**
 * @Title:外包人员合同
 * @Description:
 * @Copyright: FFCS（C） 2017
 * @Company: FFCS
 * @author Wang Yiren
 * @Version 0.0.1 date:2018年1月10日
 * @since JDK1.6
 */
public class UecOutStaffContract extends UomEntity implements Serializable {

	private static final long serialVersionUID = 7137841362165637773L;
	/**
	 * 外包人员合同标识
	 * @return
	 */
	public Long getOutPerconId() {
		return super.getId();
	}
	public void setOutPerconId(Long outPerconId) {
		super.setId(outPerconId);
	}
	/**
	 * 外包人员标识
	 */
	@Getter
	@Setter
	private Long outStaffId;
	@Getter
	@Setter
	private Long monthId; // 帐期
	@Getter
	@Setter
	private String pkPsnPercon; // 外包人员合同信息主键
	@Getter
	@Setter
	private String pkPsnMsg; // 外包人员信息主键
	@Getter
	@Setter
	private String ctCode; // 合同编号
	@Getter
	@Setter
	private String pkTermtype; // 合同期限类型
	@Getter
	@Setter
	private String ctBeginDate; // 合同开始日期
	@Getter
	@Setter
	private String ctEndDate; // 合同结束日期
	@Getter
	@Setter
	private Long trialPeriod; // 试用期限(月)
	@Getter
	@Setter
	private String actualEndDate; // 实际终止日期
	@Getter
	@Setter
	private String ctChangeType; // 合同变动类型
	@Getter
	@Setter
	private String workhourSystem; // 工时制
	@Getter
	@Setter
	private String ctMajor; // 劳动合同主体
	@Getter
	@Setter
	private String newMark; // 是否为最新合同
	@Getter
	@Setter
	private String remark; // 备注
	@Getter
	@Setter
	private String ts; // 时间戳
	@Getter
	@Setter
	private Long dr; // 删除标志

	/**
	 * 创建对象实例
	 * 
	 * @return
	 */
	public static UecOutStaffContract newInstance() {
		return new UecOutStaffContract();
	}
	
	/**
	 * 获取dao
	 * 
	 * @return
	 */
	public UecOutStaffDao repository() {
		return (UecOutStaffDao) ApplicationContextUtil.getBean("uecOutStaffDao");
	}

	
	
	/**
	 * 获取合同期限类型--pkTermtype
	 */
	public String getPkTermtypeName() {
		if (!StrUtil.isNullOrEmpty(this.getPkTermtype())) {
			String sql = " SELECT * FROM  UEC_BD_DEFDOC T WHERE T.PK_DEFDOC = ? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.getPkTermtype());
			List<UecBdDefdoc> list = this.repository().jdbcFindList(sql, params, UecBdDefdoc.class);
			if (list != null && list.size() > 0) {
				return list.get(0).getName();
			}
		}
		return "";
	}
	
	/**
	 * 合同变动类型--ctChangeType
	 */
	public String getCtChangeTypeName() {
		if (!StrUtil.isNullOrEmpty(this.getCtChangeType())) {
			String sql = " SELECT * FROM  UEC_BD_DEFDOC T WHERE T.PK_DEFDOC = ? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.getCtChangeType());
			List<UecBdDefdoc> list = this.repository().jdbcFindList(sql, params, UecBdDefdoc.class);
			if (list != null && list.size() > 0) {
				return list.get(0).getName();
			}
		}
		return "";
	}
	
	/**
	 * 工时制--workhourSystem
	 */
	public String getWorkhourSystemName() {
		if (!StrUtil.isNullOrEmpty(this.getWorkhourSystem())) {
			String sql = " SELECT * FROM  UEC_BD_DEFDOC T WHERE T.PK_DEFDOC = ? ";
			List<Object> params = new ArrayList<Object>();
			params.add(this.getWorkhourSystem());
			List<UecBdDefdoc> list = this.repository().jdbcFindList(sql, params, UecBdDefdoc.class);
			if (list != null && list.size() > 0) {
				return list.get(0).getName();
			}
		}
		return "";
	}
	
	/**
	 * 是否为最新合同--newMark; 
	 */
	public String getNewMarkName() {
		if("N".equals(this.getNewMark())) {
			return "否";
		}else if("Y".equals(this.getNewMark())) {
			return "是";
		}else {
			return "";
		}
	}
}
